package com.ccloud.common.minio.service;



import com.ccloud.common.minio.domain.MinioItem;

import java.util.List;

/**
 * @author chentl
 * @date 2021/10/28
 */
public interface MinioService {
    /**
     * 获取上传URL
     *
     * @param bucketName 桶名称
     * @param objectName 文件名称
     * @param expire     URL有效期 秒
     * @param dateDir    是否创建日期目录 1-》是，其他否。
     * @return 上传url
     * @throws Exception
     */
    String getUploadUrl(String bucketName, String objectName, Integer expire, Integer dateDir) throws Exception;

    /**
     * 获取临时URL
     *
     * @param bucketName 桶名称
     * @param objectName 文件名
     * @param expires    URL有效期 秒
     * @return
     */
    String getObjectUrl(String bucketName, String objectName, Integer expires) throws Exception;

    /**
     * 删除文件
     *
     * @param bucketName 桶名称
     * @param objectName 文件名
     */
    void removeObject(String bucketName, String objectName) throws Exception;

    /**
     * 根据前缀查询文件或文件夹信息。
     *
     * @param bucketName 桶名称
     * @param prefix     前缀
     * @param recursive  是否递归
     * @return MinioItem
     */
    List<MinioItem> getAllObjectsByPrefix(String bucketName, String prefix, boolean recursive);
}
